iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 3
1

go的基礎介紹

go的基礎介紹 是我們接下來要介紹的內容,安裝好 go 的應用程式後,接下來要跟大家初步介紹一下 go 語言的特性讓大家對於 go 語言有一些初步的概念,了解一下 go 語言的設計的概念,所以接下來會開始。

本文同步放置於此

go 是 OOP 嗎

筆者很習慣的比較程式語言是透過 OOP 或是 functional 這兩個種來區分程式語言的類別,而 go 是哪一類?筆者認為 go 是沒有繼承的 OOP。在以往多重繼承這個特性在 OOP 類別的程式語言中常常被人家所詬病,然而在 go 之中沒有繼承而是用組成(Composition)來取代。除了繼承之外其他 OOP 的概念如抽象、封裝、多形的概念都還保有在 go 內所以筆者認為 go 是 OOP。

go 的多形

剛剛提到 go 的 OOP 特性後接下來就要提一提 go 方法實作的特性, go 是不允許多載的,也就是 go 類別的方法不允許兩個以上相同名子的方法存在。原因是多載會讓開發的人員有搞混方法的機會,所以基於簡單的概念下 go 選擇讓開發的人員同一個類別之中一個名稱的方法只能做一件事情。

go 的類別

照字面上來講, go 沒有類別這定義,go 之中有一個跟類別很相近的定義就是struct,相信熟悉C與C++的讀者們對於這個關鍵字應該不陌生,這就是在C語言之中近似類別的關鍵字,但是這個沒辦法在上面實作方法,因為他不是類別,不過在 go 不一樣,可以針對這個struct定義他的方法,這部分之後會提到。

go 的介面

雖然 go 不能繼承,但是他還是保留介面這個做法,可以透過宣告介面來在編譯時期要求類別一定要實作對應的介面,這樣也可以在程式開發時相依介面而不相依類別,如此讓開發時專注在當下的方法的實作。

go 是強型別或弱型別

所謂強型別或是弱型別的差別是在於賦值時是否會在意變數的型別,強型別就是不允許變數賦予不同型別的值,例如 gopython

而弱型別則像 javascript 則可以任意賦值給變數。

go 的程式區塊及段落

go 的程式區塊是以{}來作為區域的區分,例如方法的區塊內是區域變數,只能在區域內使用。

go 的段落是以換行作為該行的結束,所以不同行的視為另一段語言。

結論

接著flasksvelte這是筆者的第三篇系列文章,希望對大家學習go有幫助,接下來會開始介紹 go的語法,在這之前有興趣的讀者們可以先看看go tour學習一下 go 語言。


上一篇
安裝 go
下一篇
go 的變數
系列文
Iris這個在go語言上地表最快的網頁框架30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言